package demo.core.runtime.extension;

import java.util.Set;

import org.osgi.framework.Bundle;

public interface ExtendRegTable{
	void addExtendPoint(Bundle bundle,String extendPoint);
	void removeExtendPoint (String extendPoint) throws RemoveException ;
	void removeExtendPoints(Set<String> extendPoints) throws RemoveException;
	ExtendPoint getExtendPoint(String extendPoint);
	
	void addExtension(Bundle bundle,ExtendPoint extendPoint, Object extension) throws AddException;
	void removeExtension(Object extension) throws RemoveException;
	void removeExtensions(Set<Object> extensions) throws RemoveException;
	Extension[] getExtensions(ExtendPoint extendPoint);
	
	void addListener(ExtendListener listener);
	void removeListener(ExtendListener listener) throws RemoveException;
}
